// pages/myHome/setType/typeInfo/typeInfo.js
import utils from '../../../../utils/typeUtil'
import CensorTextUtil from '../../../../utils/CensorTextUtil'
var app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    id: null,
    typeName: null,
    isIncome: false,
    image: null,
    modalName: null,
    isAdd: false,
    title: "新增类别"
  },
  /**
   * 清除全局类型缓存
   */
  clearCache: function (params) {
    app.globalData.editTypeInfo = null
    wx.navigateBack({
      changed: true
    });
  },
  /**
   * 返回
   */
  Back: function (params) {
    this.clearCache()
  },
  /**
   * 保存
   */
  Save: function (params) {
    this.ContentValidation().then(res => {
      if (!app.globalData.isAddType) {
        utils.updateType(this.data.id, this.data.typeName, this.data.isIncome, this.data.image, (res) => {
          this.clearCache()
        })
      } else {
        utils.addType(this.data.typeName, this.data.isIncome, this.data.image, (res) => {
          this.clearCache()
        })
      }
    })
  },
  /**
   * 删除
   */
  ShowDelete: function (e) {
    this.setData({
      modalName: e.currentTarget.dataset.target
    })
  },
  /**
   * 删除
   */
  Delete: function (params) {
    utils.deleteType(this.data.id, (res) => {
      this.setData({
        modalName: null
      })
      app.globalData.editTypeInfo = null
      wx.navigateBack({
        changed: true
      });
    })
  },
  hideModal: function (params) {
    this.setData({
      modalName: null
    })
  },
  async ContentValidation() {
    const doc = await new Promise((resolve) => {
      CensorTextUtil.CensorText(this.data.typeName).then(res => {
        if (!res) {
          this.setData({
            typeName: null
          })
          wx.showToast({
            // 提示内容
            title: "存在违规内容，请重新输入",
            icon: "none",
            duration: 2000,
            mask: false,
          })
          return resolve(false);
        } else {
          return resolve(true);
        }
      })
      return doc;
    })
  },
  /**
   * 上传图片
   */
  ChooseImage() {
    wx.chooseImage({
      count: 4, //默认9
      sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图，默认二者都有
      sourceType: ['album'], //从相册选择
      success: (res) => {
        wx.BaaS.wxCensorImage(res.tempFilePaths[0]).then(wxres => {
          if (!wxres.risky) {
            let MyFile = new wx.BaaS.File()
            let fileParams = {
              filePath: res.tempFilePaths[0]
            }
            let metaData = {
              categoryName: 'icons'
            }

            MyFile.upload(fileParams, metaData).then(upres => {
              this.setData({
                image: upres.data.path
              })
            }, err => {
              // err
            }).onProgressUpdate(e => {
              // 监听上传进度
              console.log(e)
            })
          } else [
            wx.showToast({
              // 提示内容
              title: "图片存在违规内容",
              icon: "none",
              duration: 2000,
              mask: false,
            })
          ]
        }, err => {
          // HError 对象
          wx.showToast({
            // 提示内容
            title: "检测图片违规内容失败",
            icon: "none",
            duration: 2000,
            mask: false,
          })
        })

      }
    });
  },
  /**
   * 预览图片
   * @param {*} e 
   */
  ViewImage(e) {
    wx.previewImage({
      urls: [this.data.image],
      current: e.currentTarget.dataset.url
    });
  },
  /**
   * 删除图片
   * @param {*} e 
   */
  DelImg(e) {
    wx.showModal({
      title: '提示',
      content: '确定要删除这个图标吗？',
      cancelText: '再看看',
      confirmText: '删除',
      success: res => {
        if (res.confirm) {
          this.setData({
            image: null
          })
        }
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    if (!app.globalData.isAddType) {
      this.setData({
        id: app.globalData.editTypeInfo.id,
        typeName: app.globalData.editTypeInfo.type_name,
        isIncome: app.globalData.editTypeInfo.is_income,
        image: app.globalData.editTypeInfo.type_icon,
        isAdd: !app.globalData.isAddType,
        title: "编辑类别"
      })
    } else {
      this.setData({
        isAdd: !app.globalData.isAddType,
        title: "新增类别"
      })
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})